package negocio;

import java.util.Vector;

import vistas.AlumnoVO;
import vistas.CursoVO;

public class Curso {
	private int numeroCurso;
	private Materia materia;
	private Profesor profesor;
	private Vector<Alumno> alumnos;
	private int cantidadMaxima;
	
	public Curso() {
		super();
	}
	
	public Curso(Materia materia, Profesor profesor,
			int cantidadMaxima) {
		super();
		// this.numeroCurso = numeroCurso; -> Generar automatico el numero
		this.materia = materia;
		this.profesor = profesor;
		this.cantidadMaxima = cantidadMaxima;
		this.alumnos = new Vector<Alumno>();
	}
	
	// Devuelve true/false si el numero pasado es el numero del curso
	public boolean esTuNumero(int numero){
		return this.numeroCurso == numero;
	}
	
	public void agregarAlumno(Alumno entradaAlumno){
		alumnos.addElement(entradaAlumno);
	}
	
	public boolean eliminarAlumno(Alumno entradaAlumno){
		return alumnos.remove(entradaAlumno);
	}
	
	public void reasignarProfesor(Profesor entradaProfesor){
		this.profesor = entradaProfesor;
	}
	
	public Vector<Alumno> obtenerAlumnos(){
		return this.alumnos;
	}
	
	public CursoVO getCursoVO(){
		Vector<AlumnoVO> salidaAlumnosVO = new Vector<AlumnoVO>();
		for(int i=0; i<alumnos.size(); i++){
			salidaAlumnosVO.add(alumnos.get(i).getAlumnoVO());
		}
		CursoVO salidaCursoVO = new CursoVO(this.numeroCurso,
										    this.materia.getMateriaVO(),
										    this.profesor.getProfesorVO(),
										    salidaAlumnosVO,
											this.cantidadMaxima);
		return salidaCursoVO;
	}
}
